package com.hl.annotation.bean_init_01;

import com.hl.annotation.bean_init_01.service.OrderService;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;

/**
 * spring 的一个配置类，配置了一个扫描路径，让 spring 容器自动创建相关 bean 对象
 *
 * @author liuhuan
 */
@ComponentScan("com.hl.annotation.bean_init_01")
public class AppConfig {

    /**
     * 创建三个 OrderService 类型的 Bean 对象
     *      分别叫：orderService, orderService11, orderService12
     *      生成方式 @Component    @Bean          @Bean
     * 当需要依赖注入 OrderService 类型的 Bean 对象时
     *      先在单例池中根据类型找 OrderService 类型的对象，结果发现有三个 【by type】
     *          如果有一个，则直接使用该Bean对象
     *          如果有多个，再根据变量名字找  【by name】
     *              如果名字没找到则报错
     *
     */
    @Bean
    public OrderService orderService11() {
        return new OrderService();
    }

    @Bean
    public OrderService orderService12() {
        return new OrderService();
    }

}
